package com.runjian.rundo.iot.agent.iec104.parser.frame;

import java.util.List;

import com.runjian.rundo.iot.agent.iec104.consts.Action;
import com.runjian.rundo.iot.agent.iec104.consts.FrameType;

import io.netty.buffer.ByteBuf;
import io.netty.buffer.Unpooled;
import lombok.Getter;
import lombok.NoArgsConstructor;
import lombok.Setter;
import lombok.experimental.SuperBuilder;

/**
 * 104帧的抽象,这里只定义了帧类型
 * 
 * @author CaoQingHua
 */
@Getter
@Setter
@SuperBuilder
@NoArgsConstructor
public abstract class AIec104Frame implements Frame {

    private FrameType frameType;

    /**
     * 回复侦
     *
     * @return 回复侦
     */
    public AIec104Frame replyFrame() {
        return null;
    }

    /**
     * 拼装ByteBuf
     *
     * @return
     */
    public ByteBuf assemblyByteBuf() {
        return Unpooled.buffer();
    }

    /**
     * 执行动作
     *
     * @return 执行动作
     */
    public List<Action> action() {
        return null;
    }

}
